/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef VPE_MODEL_PATH_H
#define VPE_MODEL_PATH_H

namespace OHOS {
namespace Media {
namespace VideoProcessingEngine {
enum VpeModelKey {
    VPE_MODE_KEY_INVALID = -1,
    AILIGHT_NORMAL,
    AILIGHT_STRONG,
    AILIGHT_CLS,
    AIHDR_PIC,
    HDR_COMPOSE,
    SDR_CONVERT,
    HDR_DECOMPOSE,
    IMAGE_AISR_ALGO_CONFIG,
    IMAGE_SR_MODEL_0,
    IMAGE_SR_MODEL_1,
    IMAGE_SR_MODEL_2,
    IMAGE_SR_MODEL_3,
    IMAGE_SR_MODEL_4,
    CALC_HIST_COMP_SHADER_0,
    CALC_HIST_COMP_RGB_SHADER_1,
    CALC_HIST_COMP_LIMIT_SHADER_1,
    CALC_HIST_COMP_FULL_SHADER_1,
    SDR2SDR_VIDEO_CONVERT_EBU_Y2Y,
    SDR2SDR_VIDEO_CONVERT_EBU_Y2R,
    SDR2SDR_VIDEO_CONVERT_EBU_R2Y,
    SDR2SDR_VIDEO_CONVERT_EBU_R2R,
    SDR2SDR_VIDEO_CONVERT_SMPTE_Y2Y,
    SDR2SDR_VIDEO_CONVERT_SMPTE_Y2R,
    SDR2SDR_VIDEO_CONVERT_SMPTE_R2Y,
    SDR2SDR_VIDEO_CONVERT_SMPTE_R2R,
    HDR2HDR_VIDEO_PQ2HLG_Y2Y,
    HDR2HDR_VIDEO_PQ2HLG_Y2R,
    HDR2HDR_VIDEO_PQ2HLG_R2Y,
    HDR2HDR_VIDEO_PQ2HLG_R2R,
    HDR2HDR_VIDEO_HLG2PQ_Y2Y,
    HDR2HDR_VIDEO_HLG2PQ_Y2R,
    HDR2HDR_VIDEO_HLG2PQ_R2Y,
    HDR2HDR_VIDEO_HLG2PQ_R2R,
    HDR2SDR_VIDEO_CONVERT_HLG_Y2Y,
    HDR2SDR_VIDEO_CONVERT_HLG_Y2R,
    HDR2SDR_VIDEO_CONVERT_HLG_R2Y,
    HDR2SDR_VIDEO_CONVERT_HLG_R2R,
    HDR2SDR_VIDEO_CONVERT_HLG_Y2Y_DEFAULT,
    HDR2SDR_VIDEO_CONVERT_HLG_Y2R_DEFAULT,
    HDR2SDR_VIDEO_CONVERT_HLG_R2Y_DEFAULT,
    HDR2SDR_VIDEO_CONVERT_HLG_R2R_DEFAULT,
    HDR2SDR_VIDEO_CONVERT_PQ_Y2Y,
    HDR2SDR_VIDEO_CONVERT_PQ_Y2R,
    HDR2SDR_VIDEO_CONVERT_PQ_R2Y,
    HDR2SDR_VIDEO_CONVERT_PQ_R2R,
    VIDEO_AISR_ALGO_CONFIG,
    VIDEO_SR_MODEL_0,
    VIDEO_SR_MODEL_1,
    VIDEO_SR_MODEL_2,
    VIDEO_SR_MODEL_3,
    VIDEO_SR_MODEL_4,
    VIDEO_SR_MODEL_5,
    VIDEO_SR_MODEL_6,
    VIDEO_SR_MODEL_7,
    VIDEO_SR_BILINEAR_CL_KERNEL,
    VIDEO_SR_BICUBIC_CL_KERNEL,
    VIDEO_SR_SR_CL_KERNEL,
    EVE_10bit_SCALE_KERNEL,
    VIDEO_AIHDR_ALGO_CONFIG,
    VIDEO_AIHDR_MODEL,
    IMAGE_SR_10bit_CONVERT_KERNEL,
    VIDEO_META_GEN_AI_SDR,
    CALC_HIST_COMP_RGB_SHADER_2,
    CALC_HIST_COMP_LIMIT_SHADER_2,
    CALC_HIST_COMP_FULL_SHADER_2,
    VPE_MODEL_KEY_NUM,
};

const std::array<std::string, VPE_MODEL_KEY_NUM> VPE_MODEL_PATHS = {
    "/sys_prod/etc/VideoProcessingEngine/AILIGHT_normal.omc",
    "/sys_prod/etc/VideoProcessingEngine/AILIGHT_strong.omc",
    "/sys_prod/etc/VideoProcessingEngine/AILIGHT_cls.omc",
    "/sys_prod/etc/VideoProcessingEngine/aihdr_pic.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr_compose.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr_convert.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr_decompose.bin",
    "/sys_prod/etc/VideoProcessingEngine/image_aisr_algo_config.xml",
    "/sys_prod/etc/VideoProcessingEngine/Image_SR_Model_576x576_20240402.omc",
    "/sys_prod/etc/VideoProcessingEngine/Image_SR_Model_848x1104_20240402.omc",
    "/sys_prod/etc/VideoProcessingEngine/Image_SR_Model_1104x1488_20240402.omc",
    "/sys_prod/etc/VideoProcessingEngine/Image_SR_Model_1488x1104_20240402.omc",
    "/sys_prod/etc/VideoProcessingEngine/Image_SR_Model_1872x1360_20240402.omc",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompShader0.bin",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompRgbShader1.bin",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompLimitShader1.bin",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompFullShader1.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_ebu_y2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_ebu_y2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_ebu_r2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_ebu_r2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_smpte_y2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_smpte_y2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_smpte_r2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/sdr2sdr_video_convert_smpte_r2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_pq2hlg_y2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_pq2hlg_y2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_pq2hlg_r2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_pq2hlg_r2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_hlg2pq_y2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_hlg2pq_y2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_hlg2pq_r2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2hdr_video_hlg2pq_r2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_y2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_y2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_r2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_r2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_y2y_default.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_y2r_default.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_r2y_default.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_hlg_r2r_default.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_pq_y2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_pq_y2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_pq_r2y.bin",
    "/sys_prod/etc/VideoProcessingEngine/hdr2sdr_video_pq_r2r.bin",
    "/sys_prod/etc/VideoProcessingEngine/video_aisr_ohos_config.xml",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_576x576_2x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_576x1024_2x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_1024x576_2x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_768x1280_2x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_1280x768_2x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_1088x1920_1x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_1920x1088_1x.omc",
    "/sys_prod/etc/VideoProcessingEngine/Video_SR_Model_1920x1920_1x.omc",
    "/sys_prod/etc/VideoProcessingEngine/bilinear.bin",
    "/sys_prod/etc/VideoProcessingEngine/bicubic.bin",
    "/sys_prod/etc/VideoProcessingEngine/sr.bin",
    "/sys_prod/etc/VideoProcessingEngine/10bitProcess.bin",
    "/sys_prod/etc/VideoProcessingEngine/video_aihdr_algo_config.xml",
    "/sys_prod/etc/VideoProcessingEngine/GTM_AIHDR.omc",
    "/sys_prod/etc/VideoProcessingEngine/10bitAisr.bin",
    "/sys_prod/etc/VideoProcessingEngine/aimdg.om",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompRgbShader2.bin",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompLimitShader2.bin",
    "/sys_prod/etc/VideoProcessingEngine/calcHistCompFullShader2.bin",
};
} // namespace VideoProcessingEngine
} // namespace Media
} // namespace OHOS

#endif // VPE_MODEL_PATH_H
